package uabc.arduino.componentes;

import java.util.HashMap;
import java.util.Observable;
import java.util.Observer;

import javax.swing.JCheckBox;

public class CheckBoxDigital extends JCheckBox implements Observer {

	private int id;
	private boolean seleccionado;

	public CheckBoxDigital(String label, int id) {
		setLabel(label);
		this.id = id;
	}

	@Override
	public void update(Observable o, Object arg) {
		String cadena = (String) arg;
		if (cadena.startsWith("C:MD:")) {
			cadena = cadena.substring(5);
			HashMap<Integer, Integer> valores = decodificar(cadena);
			Integer v = valores.get(id);
			if (v != null)
				if (v == 1)
					setSelected(true);
				else
					setSelected(false);
		}
	}

	public HashMap<Integer, Integer> decodificar(String cadena) {
		// 02=1:03=0:05=1:06=0:07=1:08=0
		// 02=1:03=2:05=3:06=1:07=2:08=3
		String[] entradas = cadena.split(":");
		HashMap<Integer, Integer> mapa = new HashMap<Integer, Integer>();
		for (int i = 0; i < entradas.length; i++) {
			String[] entrada = entradas[i].split("=");
			mapa.put(Integer.parseInt(entrada[0]), Integer.parseInt(entrada[1]));
		}
		return mapa;
	}

}
